MegaFLE X - version 0.701 FINAL (05-16-11)
==========================================

0.701 changes:
Additions:
 * More Icons.
External additions:
 * Full "Sprite Group" sets for MM3, 4 and 5.
 * Added 3 more patches:
	* Mega Man 4 - Use "Slippery" Block type in any level
	* Mega Man 4 - Disable pre-intro
	* Mega Man 4 - Disable Cossack Stage 3 Autoscroll
Major:
 * Effect Sprite Editor (Enemy Editor): Complete support for editing Mega Man 5's effect sprites:
	* A fourth option has been added, for CHR Bank swap. The Enemy Ids in the C0-FF range that couldn't be edited previously, will show in the editor now.
	* Its now possible to change between all 4 types.
	* Its now possible to change the options beside "Pal. Slot:" when it should be, instead of it randomly being enabled or disabled.
 * Fixed changing of Effect Sprite values as text, which would crash the program since version 0.6. (relevant to both MM4 and MM5 mode)
Moderate:
 * Enemy Editor (Mega Man 3): Fixed program from freezing when using "Find GFX Set" for certain enemies, like Id $2B.
 * Enemy Editor: Enemy sprites no longer wrap to the other side of the screen if they get cut off by the left or right edge. "Eff:" boxes
	still do when they are cut off at the right.
 * Enemy Editor (Mega Man 5): Sprite tiles are updated immediatedly whenever enemies are displayed.
megafle.dat related:
 * "mm3_boss_spr" is now actually used by the program to decide what Enemy IDs should be drawn with the Boss sprite bank.
Minor:
 Over a dozen smaller fixes has been done since 0.7. See "Complete update list.txt".


What's new 0.7 (BETA) (04-28-11, by Matrixz):

Additions or Improvements:
 * Scene Screen Mode has been worked on, so that it is now practically complete. Mega Man 6 is not supported.
 * Implemented Door Editor. MM3, 4 and 5 should all be fully supported.
 * Enemy Editor: Implemented "Add Sprite Group" feature. It may be used to quickly insert some common setups of multiple enemies (like Wily bosses). Presets can be edited in megafle.dat.
 * TSA Table: Added "Copy TSA" and "Paste TSA" buttons. It can copy all the datas of one TSA Block to another.
 * TSA Table/Config: Added a third resolution mode, "Large 8x8". It should be easier on the eyes. (also the upper and left sides are not completely obscured by the grid.)
 * Palette Editor: Added "Palette Set change" with two options, deciding how the editor's current Palette Set is selected. "Auto" will change it automatically according to the game's data and the current Screen. (like old versions). "Manual Selects" lets you to change it, and it will not change automatically.
 * Added "Patches", under "Other" on the menu. It can provide some useful fixes for some of the supported games, and is open for expansion by users (by modifying files in the "Patches" subfolder, although it may be useless)
 * Added support for Mega Man 5's "change bottom-half CHR" variable which is associated with the current Scroll Map's Sprite Palette set. It can be modified in the Screen Editor.
 * Tile Table (Mega Man 5): Added "CHR Anim Controls". The left button will stop/start CHR Animations. The right button will advance the animation 1 frame.
 * Palette Editor: Implemented preview of Mega Man sprite for the Weapon palette editor.
 * Structure Editor: Added function for Middle mouse button. Pressing it will set the current TSA (in TSA Table) as the TSA Block below the Mouse pointer.
 * TSA Table: Added function for Middle mouse button. Pressing it will set the current Tile to what is below the Mouse pointer.
 * Screen Editor: Added more mouse functions. Shift + Left Click and Right Click, will Increase and Decrease (respectively) the Structure Id below the mouse pointer.
 * Implemented "Animate Sprites" for Mega Man 6 in Enemy Editor.
 * Added button on main form to Re-Load .DAT file.
 * Changed hotkey for Load Backup from F8 to F3.
 * Added "Special" in the menu, with a function "Load Chargeman train interior graphics".
 * Added shortcut key to SBD Editor (shift + Z anywhere)
 * Implemented (finished) "Enemy Id Usage" under "Stats". Not very useful, but its fun..
 * Config: Added option "Mega Man 4 - Enable copy of Ringman Palette Animation to Spr palette.
 * Improved some text in Configuration window (maybe)
Fixes:
 * Mega Man 6: Enemies can be Inserted again without breaking program. Also, fixed Deletion so it removes the right enemy.
 * TSA Table: Fixed the annoying problem when changing TSA property while CHR Animations are being simulated. (relevant for MM5 mode only)
 * Fixed bad scroll navigation for Megaman 5. (Waveman's stage is now in sync with scroll data when navigating. Also, scroll sets which are hacked to use more than 16 screens should no longer cause problems).
 * SBD Editor: Converter now again reads and converts the bottom-most row of TSA Blocks (row 16) that you cannot see in
   gameplay. The TSA properties in the bottom-most row still DOES have an effect on gameplay (at least in Mega Man 4). So, sometimes the
   conversion would cause odd behavior, like Mega Man dying before scrolling down to the next screen. It is now possible
   to fix and prevent those problems with the editor.
 * Fixed odd corruption of data when removing things in Graphics Load Editor. (The Data handler would modify one byte more "up" in the ROM than it should.)
 * Misc. Editor multi-paths (Mega Man 5 mode): Swapped around "Screen Position B" and "Scroll Map B", which previously were in the wrong order for the values shown.
 * Structure Table: Fixed black window when opening.
 * The Configuration checkbox under "Enemy Editor" -> "Show Enemy Count in Hexidecimal (off = Decimal)". This option actually works now, and by default, the Scroll Map Position counter in the Enemy editor shows it in hex.

Current Support
---------------

MegaFLE X supports editing of a variety of things in
the ROMs of Megaman 3, 4, 5 and 6. Here is a current overview:

                     3  4  5  6

Editing:

TSA Block            X  X  X  X
Structure            X  X  X  X
Screen Layout        X  X  X
Screen               X  X  X  X
Scroll (Directions)  X  X  X
Scroll (Misc Data)   X  X  X
Graphics Load Data      X     -
Sprite CHR Set       X
Level Palette        X  X  X  X
Palette Animation    X  X  X  -
CHR Animations             X  -
Enemy Placement      X  X  X  X
Enemy Attribute      I  I  I  I
Effect Sprites          X  X
Scroll Sprites                -
Sprite Palette       X  X  X  X
Mid/Boss-Point Data  X  X  X  -
Multi-Path Data         X  X
Level CHR Pointers   X     X
Other Level Misc.    ?  ?  ?  I
Scene Screens        X  X  X  -

Simulation:

Palette Animations   X  X  X  -
CHR Animations             I  -
Grapics Load Data       X     X	
Effect Sprites          X  X	 
Enemy Attribute               X
Scroll Sprites                I
Sprites              X  X  X  X
Enemy Names          X  X  X  I

(blank): Not used in that game
X: Supported
-: Not Supported
I: Incomplete support
?: Unsure if support is complete

Installation Instructions (With components)
-------------------------------------------

This release includes Visual Basic 6 run-time files,
which are used from the folder which MegaFLE X is run from
(if they are found there).

If you get errors when trying to run the program or
it doesnt work properly, try deleting the
OCX and DLL files in the MegaFLE X folder.
It may be that they don't work well with your computer.

If you still have problems, you might need to install
a pack of VB6 run-time files.
Try this link:
http://www.microsoft.com/downloads/details.aspx?FamilyID=7b9ba261-7a9c-43e7-9117-f673077ffb3c&DisplayLang=en

Known problems
--------------

* ROM on different drive than program

The editor may quit abruptly if the loaded ROM is on a different drive
than the editor itself. It will not be fixed because there is no simple way.
Just move the rom or MegaFLE so that both things use the same drive letter.

Help
----
Check out guide.txt. It contains some details on how to use the editor,
and has been updated richly for version 0.701.

Custom .DAT files
-----------------
For you users who might have done custom .dat files for earlier versions,
the new version has a .dat file which has some changes. If you try using your
custom .dat file in the new version, things might not work properly.

Global Mouse and Key usage:
---------------------------

Main keys, works everywhere:

F3: Load Backup
F4: Re-Load ROM
F5: Save
F6: Previous Level
F7: Next Level
F9: Test run in emulator (check out config window first)
F11: Run Shell command (check out config window first)

Shortcut keys (also works everywhere):

Shift + P : Open / Focus Palette Editor.
Shift + T : Open / Focus Tile Table.
Shift + B : Open / Focus TSA Table.
Shift + R : Open / Focus Structure Table.
Shift + S : Open / Focus Screen Editor.
Shift + E : Open / Focus Enemy Editor.
Shift + M : Open / Focus Level Miscellaneous Editor.
Shift + D : Open / Focus Door Editor.
Shift + Z : Open / Focus SBD Editor.
Shift + X : Focus Main Window.
F12: Open / Focus Config window.

Feature: Load Backup
--------------------

Whenever you save, the current rom file's
contents will be backed up to a file called backup.rom.
This means that any changes done up until the *previous*
time you saved, are copied to a different file, and
the changes since that can be undone.
When you save, stuff will be copied as follows:

 1: megaman3.nes     --->  backup.rom
 2: [editor memory]  --->  megaman3.nes

The Load Backup function, triggered by F3 and found
under the File menu, loads the contents of backup.rom to the
editor's memory. It does nothing to the real rom on its own.

 backup.rom ---> [editor memory]

Main Window features:
---------------------

CHR PointerMap:
  The CHR Pointer Map is an array containing:
  A pointer to the byte offset of a tile
  in rom, for each background tile (0-255) plus
  each sprite tile (0-255). For whatever good,
  the whole array can be extracted or inserted
  to a file. The format is a long (4-byte)
  pointer for each tile, in litte-endian.
  Extracting or Inserting will not affect the ROM,
  just reference data used to draw graphics.

CHR:
  This will read or write CHR data directly from/to
  the loaded ROM, to/from a file. Also, if importing
  CHR, it may write to different locations in the
  ROM for different tiles, since tiles may be loaded
  from random locations in the ROM, depending on
  which game you are editing and simply what you are
  doing. Be careful with this, unless you know what
  you are doing.

Level Data Pointer Mod:
  Lets you change various ROM pointers, maximum values
  and other values used for a particular game. These
  are based on sources in megafle.dat. Some pointers
  are level-specific and will change when you switch level.

  You may now also load and save files containing all the
  settings that can be modified here.

ROM Memory Hex Patcher:
  A integrated, un-intuitive hex editor.
  The offset is base 1, meaning you need to add 1
  to the offset you want.
  Get Data loads 32 bytes in hex in the window,
  from the written offset.
  Apply Changes will write back any number of
  values found in the window to the ROM, in the same
  format. (it doesnt need to contain 32 bytes in
  order to work.)

Other notes
-----------

SBD Screen Import/Export:

Loading SBD screen data which were saved in versions 0.42 and earlier
will not load correctly. The format were changed in order to allow the
more complicated load/save functions.
This version comes with a feature to convert screen files saved with
those versions, to the new format. Its found under "Tools" ->
"Convert .SCR file to new format"

Conclusion
----------

Thanks:
	MGDT - Original VB6 tile render which the one in this was based on.
	MartsINY - Input, bug reports
	Kain Xiorcal - Input, bug reports
	Kuja Killer - Programmed parts of the editor, bug reports

Developed by Matrixz
	Version 0.42 and parts of 0.5 programmed by kuja killer

It was programmed in VB. Thanks for not killing me! (joke)

I have omited contact info, because i will not be updating this in the future and i don't want to be bugged.